﻿#pragma once
#include "ITask.h"
#include "time/gettickcount.h"

#define GetCurrentMillisecond   gettickcount

/**
 * 定时器
 */
class ITimer
{
public:
	virtual ~ITimer(){}
	/**
	 * 设置定时器，定时器将触发执行ITask::Done()
	 * \param 任务
	 * \param interval 间隔时间，单位毫秒
	 * \param once true 只执行一次，false 多次执行，直到KillTimer
	 */
	virtual bool SetTimer(ITask*p,uint64_t interval,bool once) = 0;

	/**
	 * 取消定时器
	 */
	virtual bool KillTimer(ITask*p)= 0;
};
